Accéder visuellement à une machine distante via ssh

ceci est un brouillon à but perso (pour le moment) et en cours d'écriture

Introduction

Après une installation chez des amis, bien souvent il me faut accéder à leur machine quelques temps après.
Pour se faire, j'ai pensé à SSH1) que je n'utilisais pas et le visionneur de bureau distant déjà installé Vinagre.
Celà me permet une prise en main graphique de la machine (Vinagre) en sécurisant d'abord cette connexion (SSH)

Pour la suite le serveur est la machine distante que l'on cherche à atteindre (le pc de l'ami quoi)
Le client est la machine qui prendra le contrôle (en gros mon pc)

Pré-requis

Côté serveur

sudo apt-get install openssh-server

Dans un terminal vérifier que le service est bien actif:

status ssh

si la réponse est "ssh start/running, process XXXX" (ou XXXX est un nombre) c'est que le service est bien actif sinon il faut le démarrer par:

sudo service ssh start

ou

sudo /etc/init.d/ssh start
ifconfig | grep inet

(devrait donner une adresse du type 192.168.0.10)

Sur la freebox tout se passe dans l'interface de gestion de votre compte.
Dans la section Internet sélectionner la partie Configurer le routeur.
Vérifier alors que le mode routeur est bien activé et dans le bas de cette page redirigé le port 223) vers l'adresse 192.168.1.XX:22 récupérée plus tôt.
Enregistrer ces nouveaux paramètres et de rebooter la freebox ensuite.
FIXME: UDP ou TCP ? moi j'ai mis les 2
wget http://checkip.dyndns.org/ -O - -o /dev/null | cut -d: -f 2 | cut -d\< -f 1

Côté Client

Rien tout est installé (un café si vous voulez :-)).

Première Connexion

ssh -L 5900:localhost:5901 Login@Adresse-ip:Port

Login est le nom de l'utilisateur qui se trouve sur le serveur.
Adresse-ip est l'adresse "internet" du serveur.
Port est le port indiqué à rediriger dans l'interface de gestion (donc 22 par défaut ou bien 2764 pour reprendre l'exemple ci-dessus).
L'option -L 5900:localhost:5901 est facultative. C'est elle qui permet d'accéder au serveur graphique distant en passant par ssh. Si vous comptez utiliser uniquement le terminal, vous pouvez retirer cette partie

Vous devriez avoir une demande de confirmation la première fois pour valider votre connexion au serveur, puis le mot de passe du compte distant (donc le mot de passe du user sur le serveur) doit vous être demandé.
Vous êtes maintenant sur le serveur (= la machine de votre ami).

Et maintenant ?

Vous avez donc accès à la machine distante, le problème c'est que votre ami ne vois pas forcément ce que vous faites ou vous n'êtes pas très à l'aise avec la ligne de commande.
Pour rappel, vous avez laissez ouvert le terminal précédemment connecté.

Retour visuel de la ligne de commande

Sur le serveur, demander à l'utilisateur d'ouvrir un screen avec le nom de son choix (exemple pote)

screen -S pote

et de votre côté entrer dans le terminal connecté

screen -x pote

Ce que vous saisirez sera maintenant affiché en parallèle sur le terminal distant (donc sous les yeux de votre ami).

Retour graphique de l'environnement

Si vous souhaiter accéder graphiquement au serveur, vérifier sur celui-ci que **vino-server est bien dans les applications au démarrages donc bien actif:

ps -ef | grep vino-server

si vous avez une ligne avec /usr/lib/vino/vino-server c'est que c'est bien le cas sinon saisissez

/usr/lib/vino/vino-server &

Demandez de désactiver les effets graphiques (Système/préférences/apparences/onglet effet choisir aucun.
De votre côté, entrer

vinagre localhost:1

Une demande d'autorisation doit apparaitre sur l'écran serveur, demandé à votre ami de valider.
Vous devriez être maintenant sur le pc de vote ami et ce dernier doit voir toute vos actions.

Quitter la connexion distante

Côté client, pour quitter votre accès à distance, quittez vinagre et les terminaux ouverts. Côté serveur, vous pouvez arrêter le serveur ssh par

sudo service ssh stop

ou

sudo /etc/init.d/ssh stop

et vino-server par

sudo killall vino-server

Quitter également les différents terminaux si vous avez utilisé screen

Sécurité

Pour reprendre la main les prochaine fois il faudra donc demander à votre ami de démarrer ssh tel qu'indiqué dans les pré-requis.

Mise en page et suite plus tard

1)
Secure SHell
2)
pour le moment
3)
ou autre